Cache memory systems in computer systems typically provide relatively smaller and lower latency memory. Such cache memory stores copies of a subset of data stored in main memory to reduce the average time to access data. Conflicts may arise when multiple clients attempt to access the cache memory system at the same time.
One technique for reducing conflicts between multiple clients may include dividing the cache memory system into multiple cache memory banks each containing a portion of the data in the cache memory system, so that multiple clients may each be able to access a different cache memory bank in cache memory system at the same time, thereby reducing conflicts between clients and increasing the throughput of the cache memory system. However, a high percentage of conflicts may still occur, thereby reducing the throughput of cache memory systems.